# 匿名函数 filter()
# filter(函数名,列表/元组/集合/字符串)

# 例子1
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


def even_number(x):  # 筛选偶数
    return x % 2 == 0


b = list(filter(even_number, a))

print(b)  # [2, 4, 6, 8, 10]

# 例子2
a = ['A', '', 'B', None, 'C', '  ']


def remove_blank(x):  # 去除空元素
    return x and x.strip()


b = list(filter(remove_blank, a))
print(b)  # ['A', 'B', 'C']

# 说明 filter()把传入的函数依次作用于每个元素，
# 然后根据返回值是True还是False决定保留还是丢弃该元素，处理完后返回的是生成器类型，需要用list生成数据
